﻿#include "lg_choosedb.h"

LG_ChooseDB::LG_ChooseDB(QObject *parent)
    : QObject{parent}
{}

bool LG_ChooseDB::connectToDataBase(QSqlDatabase *Db)
{
    if(!Db->open())
    {
        qDebug()<<"Cpp:连接 料高选择数据库 失败 ";
        return false;
    }
    else
    {
        qDebug()<<"Cpp:连接 料高选择数据库 成功 ";
        return true;
    }
}

bool LG_ChooseDB::execSql(const QString &sql)
{
    SQLitedPool* pool = SQLitedPool::getInstance();
    QSqlDatabase* Db = pool->get_LG_DataBase();
    if(!Db)
    {
        return false;
    }
    if(!Db->isOpen())
    {
        if(!connectToDataBase(Db))
            return NULL;
    }

    QSqlQuery query(*Db);

    bool ok = query.exec(sql);
    if(!ok)
    {
        qDebug()<<"Cpp:execSql->lastError():"<<query.lastError();
    }

    return ok;
}

QSqlQuery *LG_ChooseDB::execSql_result(const QString &sql)
{
    QSqlDatabase* Db = SQLitedPool::getInstance()->get_LG_DataBase();
    if(!Db)
    {
        return NULL;
    }

    QSqlQuery* query = new QSqlQuery(*Db);
    if(!Db->isOpen())
    {
        if(!connectToDataBase(Db))
        {
            return NULL;
        }
    }
    // 查询
    if(query->exec(sql))
    {
        return query;
    }
    else
    {
        qDebug()<<"Cpp:execSql_result->lastError():"<<query->lastError();
    }

    return NULL;
}
